package com.jenkins.test.proxy.gov.dto.reponse;

import com.jenkins.test.proxy.gov.dto.GovResponse;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.ArrayList;
import java.util.List;

/**
 * @version V1.0.0
 * @ClassName: {@link DownConfigResponse}
 * @Description: RegistrationResponse
 * @author: Lanzhou
 * @date: 2022/1/24 10:42
 * @Copyright:2020 All rights reserved.
 */
@Setter
@Getter
@ToString
public class DownConfigResponse extends GovResponse {


    /**
     * “2014-10-10 21:58:46”,
     */
    private String updatetime;

    /**
     * 采集数据项配置
     */
    private List<CollectItemConfig> collectItemConfig = new ArrayList<>();

    @Setter
    @Getter
    @ToString
    static class CollectItemConfig {
        /**
         * "全厂-二次能源-电力-购进已消费", // 采集数据项指标名称
         */
        private String name;
        /**
         * "00", // 生产工序
         */
        private String processCode;
        /**
         * "00", // 工序单元
         */
        private String processUnitCode;
        /**
         * "00", // 重点耗能设备类型
         */
        private String equipmentCode;
        /**
         * "00", // 重点耗能设备编号
         */
        private String equipmentUnitCode;
        /**
         * "02", // 采集对象类型
         */
        private String energyClassCode;
        /**
         * "3300", // 能源分类 + 分项
         */
        private String energyTypeCode;
        /**
         * "11", // 用途编码
         */
        private String dataUsageCode;
        /**
         * "1", // 数据采集来源
         */
        private String inputType;
        /**
         * 300000, // 数据最大值
         */
        private String dataValueMax;
        /**
         * 0, // 数据最小值
         */
        private String dataValueMin;
        /**
         * 1",//0 实时;1 日;2 月;3 年
         */
        private Integer statType;
        /**
         * "EXCENERGY 能源采集系统", // 采集系统名称
         */
        private String collectSystemName;
        /**
         * "", // 备注
         */
        private String remark;
        /**
         * 1 // 范围 1：全厂，2：生产工序，3：生产工序单元，4：重点耗能设备
         */
        private Integer scope;
    }


    /**
     * 采集数据项配置
     */
    private List<Enterprise> enterprise = new ArrayList<>();

    @Setter
    @Getter
    @ToString
    static class Enterprise {
        /**
         * "91330000573973053F", // 统一社会信用代码
         */
        private String code;
        /**
         * "示例钢铁有限责任公司", // 单位名称
         */
        private String name;
        /**
         * "159", // 单位类型
         */
        private String typeCode;
        /**
         * "其他有限责任公司", // 单位类型名
         */
        private String typeName;
        /**
         * "C3120", // 行业编码
         */
        private String industryCode;
        /**
         * "410481", // 区域编码(6 位到地区级别)
         */
        private String regionCode;
        /**
         * "示例市", // 地区名
         */
        private String regionName;
        /**
         * false, // 是否央企
         */
        private String center;
        /**
         * "91330000573973053F", // 统一社会信用代码
         */
        private String corporationCode;
        /**
         * false, // 是否能源加工转换类企业
         */
        private String jgzh;
        /**
         * 1, // 1:5000 吨以下, 2:10000 吨以上,3:1 万-10 万吨，4:10 万-50 万吨，5:50 万-300 万吨，6:300 万吨以上
         */
        private String energyConsumeLevel;
        /**
         * 33.283433, // 用能单位主要厂址中心纬度
         */
        private String latitude;
        /**
         * 113.505883, // 用能单位主要厂址中心经度
         */
        private String longitude;
        /**
         * "0375-8111111", // 企业联系电话
         */
        private String phone;
        /**
         * "0375-8111111", // 传真
         */
        private String fax;
        /**
         * "zxjc@163.com", // 电子邮箱
         */
        private String email;
        /**
         * "河南省示例市人民大道 1 号", // 地址
         */
        private String address;
        /**
         * "462500" // 邮编
         */
        private String zipCode;
        /**
         * "", // 用能单位网站地址 URL
         */
        private String url;
        /**
         * "100", // 领域编码，工业:100,交通运输、仓储和邮政业:200,住宿和餐饮业：300，批发和零售业：400，教育：500，其他：600
         */
        private String fieldCode;
        /**
         * "工业", // 领域名称
         */
        private String fieldName;
        /**
         * "赵钱孙", // 法人代表
         */
        private String corporationName;
        /**
         * "1998-10-10 00:00:00", // 注册日期
         */
        private String registerDate;
        /**
         * 10000, // 注册资金，万元
         */
        private String registerPrincipal;
        /**
         * "机电能源部", // 能管机构名称
         */
        private String energyOffice;
        /**
         * "李周", // 主管节能领导姓名
         */
        private String energyOfficial;
        /**
         * "机电能源部主任", // 主管节能领导职位
         */
        private String energyOfficialPosition;
        /**
         * "18866669999", // 主管节能领导联系电话
         */
        private String energyOfficialPhone;
        /**
         * false, // 是否通过能源管理体系认证
         */
        private String energyPass;
        /**
         * "吴郑", // 能管负责人姓名
         */
        private String energyRespName;
        /**
         * "18677778888", // 能管负责人电话
         */
        private String energyRespPhone;
        /**
         * "", // 认证日期
         */
        private String passDate;
        /**
         * "", // 认证机构
         */
        private String passOrg;
        /**
         * "电弧炉生产宽厚板短流程生产线", //企业主要生产线名称
         */
        private String productionLine;
        /**
         * "钢板", //企业主导产品
         */
        private String leadingProduct;
        /**
         * "企业信息化水平落后，除电力消费数据外，其他数据指标均采用人工填报方式上传", // 备注
         */
        private String remark;
    }


    /**
     * //集团
     */
    private List<Group> group = new ArrayList<>();

    @Setter
    @Getter
    @ToString
    static class Group {
        /**
         * "河北示例钢铁股份有限公司", // 集团名称
         */
        private String name;
        /**
         * "河北省示例市体育南大街 385 号", // 集团地址
         */
        private String address;
        /**
         * "" // 备注
         */
        private String remark;
    }

    /**
     * // 生产工序
     */
    private List<Process> process = new ArrayList<>();

    @Setter
    @Getter
    @ToString
    static class Process {
        /**
         * "06", // 生产工序编码
         */
        private String processCode;
        /**
         * "电炉工序", // 生产工序名称
         */
        private String processName;
        /**
         * "" // 备注
         */
        private String remark;
    }

    /**
     * 工序单元
     */
    private List<ProcessUnit> processUnit = new ArrayList<>();

    @Setter
    @Getter
    @ToString
    static class ProcessUnit {
        /**
         * "01", // 工序单元编码
         */
        private String code;
        /**
         * "#1 电炉", // 工序单元名称
         */
        private String name;
        /**
         * "06", // 生产工序编码
         */
        private String processCode;
        /**
         * "2010-10-10 00:00:00", // 投产日期
         */
        private String commDate;
        /**
         * "年产钢水 50 万吨", // 生产能力
         */
        private String designedCapacity;
        /**
         * "" // 备注
         */
        private String remark;
    }


}
